<?php
	require("frmCookie.php");
	
	$iOpcion = $_GET[iOpcion];
?>
<html>
	<head>
    	<?php
		require("frmHeader.php");
		?>
		<script language="javascript" src="scripts/ajax.js"></script>
		<script language="javascript" src="scripts/validar.js"></script>
		<script language="javascript"></script>
	</head>
	<body onLoad="frm.txtFechaDesde.focus();">
    	<table cellpadding="0" cellspacing="0" align="center" class="tablaPrincipal">
        	<tr>
            	<td align="center">
                	<?php
					require("frmSession.php"); 
					
					//Redirecciona a SINPERMISOS.PHP en caso de no tener permisos
					
					if (!(in_array(166005, $_SESSION[permisos])))
					{
					?>
					  <script language="JavaScript" type="text/javascript">
					  <!--
					  window.location.href = "sinPermisos.php"
					  //-->
					  </script>
					<?php
					}
					$titulo = "Reporte Inspecciones";
					
					?>
                </td>
            </tr>
            <tr>
            	<td align="center">
                	<?php
					require("frmTitulo.php");
					?>
                </td>
            </tr>
            <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
            	<td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="menuPrincipal">
                    	<tr>
                        	<td>
								<?php
                                require("frmMenu.php");
                                ?>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="tituloPantalla">
                    	<tr>
                        	<td align="center">
                            	<p class="texto" align="left"><?php echo $titulo; ?></p>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
             <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="estadoPantalla">
                    	<tr>
                        	<td align="center">
                            	<p class="texto" align="left"><?php echo $mensaje; ?></p>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
             <tr>
            	<td height="20">&nbsp;
                	
                </td>
            </tr>
            <tr>
                <td align="center">
                	<table cellpadding="0" cellspacing="0" align="center" class="contenedorPrincipal">
                    	<tr>
                        	<td align="">
                        		<?php
                        		switch($iOpcion)
                        		{
                        			case 1:
                        			{
                				?>
                				<form name="frm" action="excelInspecciones.php?iOpcion=2" onSubmit="return validaForm();" method="post">
                					<table>
                						<tr>
                							<td>Fecha Desde: </td>
                							<td><input type="text" name="txtFechaDesde" size="10" maxlength="10" /></td>
                						</tr>
                						<tr>
                							<td>Fecha Hasta: </td>
                							<td><input type="text" name="txtFechaHasta" size="10" maxlength="10" /></td>
                						</tr>
                						<tr>
                							<td colspan="2" align="center"><input type="submit" name="cmdEnviar" value="Generar" /></td>
                						</tr>
                					</table>
                				</form>
                        		<?php
                        				break;
                        			}
                        			case 2:
                        			{
                        		
		                        		$data = array(
										  array('Usuario', 'Sucursal', 'Numero de Producto Inspeccionado', 'Numero de Inspeccion',	'Cliente', 'Fecha de Inicio', 'Fecha de Cierre', 'Producto', 'Marca', 'Modelo', 'IMEI', 'Numero de Serie', 'Fecha de Fabricacion', 'Falla 1 Retail', 'Falla 2 Retail', 'Falla 3 Retail', 'Falla 1 Inspector', 'Falla 2 Inspector', 'Falla 3 Inspector', 'Clasificacion', 'Garantia', 'Motivo Perdida de Garantia', 'Estado del Embalaje', 'Estado de la Estetica',	'Observaciones', 'Codigo de Producto', 'Accesorios'));
		                        		
		                        		list($dia, $mes, $ano) = split("/", $_POST[txtFechaDesde]);
										$fechaDesde = $ano . "-" . $mes . "-" . $dia;
		                				
		                				list($dia, $mes, $ano) = split("/", $_POST[txtFechaHasta]);
										$fechaHasta = $ano . "-" . $mes . "-" . $dia;
										
		                        		$sql = "select mxi.idModeloxInspeccion, concat(u.apellido, ' ', u.nombre) as usuario, suc.nombreInterno as sucursal, i.idInspeccion, cli.nombre as cliente, date_format(i.fechaInicio,'%d/%m/%Y') as fechaInicio, date_format(i.fechaCierre,'%d/%m/%Y') as fechaCierre, pr.nombre as producto, m.nombre as marca, mo.nombreComercial as modelo, mxi.imei, mxi.serie, date_format( mxi.fechaFabricacion,'%d/%m/%Y') as fechaFabricacion, sc.nombre as sintomaCliente, si.nombre as sintomaInspector, c.nombre as clasificacion, mxi.mantieneGarantia, mpg.nombre as motivoPerdidaGarantia, eem.nombre as estadoEmbalaje, ees.nombre as estadoEstetica, mxi.observaciones, mxi.codigoProducto, p.descripcionInterna as accesorio from inspecciones i left join clientes cli on i.idCliente = cli.idCliente left join modelosxinspeccion mxi on i.idInspeccion = mxi.idInspeccion left join modelos mo on mxi.idModelo = mo.idModelo left join productos pr on mo.idProducto = pr.idProducto left join marcas m on mo.idMarca = m.idMarca left join sintomasclientexmodeloxinspeccion scxmxi on mxi.idModeloxInspeccion = scxmxi.idModeloxInspeccion left join sintomasinspectorxmodeloxinspeccion sixmxi on mxi.idModeloxInspeccion = sixmxi.idModeloxInspeccion left join sintomas sc on scxmxi.idSintoma = sc.idSintoma left join sintomas si on sixmxi.idSintoma = si.idSintoma left join clasificaciones c on mxi.idClasificacion = c.idClasificacion left join motivosperdidagarantia mpg on mxi.idMotivoPerdidaGarantia = mpg.idMotivoPerdidaGarantia left join estadosembalaje eem on mxi.idEstadoEmbalaje = eem.idEstadoEmbalaje left join estadosestetica ees on mxi.idEstadoEstetica = ees.idEstadoEstetica left join accesoriosxmodeloxinspeccion axmxi on mxi.idModeloxInspeccion = axmxi.idModeloxInspeccion left join partes p on axmxi.idParte = p.idParte left join sucursales suc on mxi.idSucursal = suc.idSucursal left join usuarios u on mxi.idUsuario = u.idUsuario where (i.fechaCierre between '$fechaDesde' and '$fechaHasta') order by i.idInspeccion, mxi.idModeloxInspeccion";
										
										//echo $sql;
										//exit;
										
										$accesorios = array();
										$sintomasCliente = array();
										$sintomasInspector = array();
										
		                        		$inspecciones = readSQL("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;".$sql);
										
										$i=0;
										foreach($inspecciones as $inspeccion)
										{
											$registro = array();
											
											if($i==0)
											{
												$idModeloxInspeccion = $inspeccion['idModeloxInspeccion'];												
												$numeroProductoInspeccionado = 1;
												$usuario = $inspeccion['usuario'];
												$sucursal = $inspeccion['sucursal'];
												$idInspeccion = $inspeccion['idInspeccion'];
												$cliente = $inspeccion['cliente'];
												$fechaInicio = $inspeccion['fechaInicio'];
												$fechaCierre = $inspeccion['fechaCierre'];
												$producto = $inspeccion['producto'];
												$marca = $inspeccion['marca'];
												$modelo = $inspeccion['modelo'];
												$imei = $inspeccion['imei'];
												$serie = $inspeccion['serie'];
												$fechaFabricacion = $inspeccion['fechaFabricacion'];
												$sintomaCliente = $inspeccion['sintomaCliente'];
												if(!in_array($sintomaCliente, $sintomasCliente))
												{
													array_push($sintomasCliente, $sintomaCliente);	
												}
												$sintomaInspector = $inspeccion['sintomaInspector'];
												if(!in_array($sintomaInspector, $sintomasInspector))
												{
													array_push($sintomasInspector, $sintomaInspector);	
												}
												$clasificacion = $inspeccion['clasificacion'];
												$mantieneGarantia = $inspeccion['mantieneGarantia'];
												if($mantieneGarantia == "1")
												{
													$garantia = "SI";
												}
												else
												{
													$garantia = "NO";
												}
												$motivoPerdidaGarantia = $inspeccion['motivoPerdidaGarantia'];
												$estadoEmbalaje = $inspeccion['estadoEmbalaje'];
												$estadoEstetica = $inspeccion['estadoEstetica'];
												$observaciones = $inspeccion['observaciones'];
												$codigoProducto = $inspeccion['codigoProducto'];
												$accesorio = $inspeccion['accesorio'];
												if(!in_array($accesorio, $accesorios) && $accesorio != '')
												{
													array_push($accesorios, $accesorio);	
												}
											}
											else if ($idModeloxInspeccion == $inspeccion['idModeloxInspeccion'])
											{
												$sintomaCliente = $inspeccion['sintomaCliente'];
												if(!in_array($sintomaCliente, $sintomasCliente))
												{
													array_push($sintomasCliente, $sintomaCliente);	
												}
												$sintomaInspector = $inspeccion['sintomaInspector'];
												if(!in_array($sintomaInspector, $sintomasInspector))
												{
													array_push($sintomasInspector, $sintomaInspector);	
												}
												$accesorio = $inspeccion['accesorio'];
												if(!in_array($accesorio, $accesorios) && $accesorio != '')
												{
													array_push($accesorios, $accesorio);	
												}
											}
											else
											{
												array_push($registro, $usuario);
												array_push($registro, $sucursal);
												array_push($registro, $numeroProductoInspeccionado);
												array_push($registro, $idInspeccion);
												array_push($registro, $cliente);
												array_push($registro, $fechaInicio);
												array_push($registro, $fechaCierre);
												array_push($registro, $producto);
												array_push($registro, $marca);
												array_push($registro, $modelo);
												array_push($registro, $imei);
												array_push($registro, $serie);
												array_push($registro, $fechaFabricacion);
												for($j=0; $j<3; $j++)
												{
													array_push($registro, array_pop($sintomasCliente));
												}
												for($j=0; $j<3; $j++)
												{
													array_push($registro, array_pop($sintomasInspector));	
												}
												array_push($registro, $clasificacion);
												array_push($registro, $garantia);
												array_push($registro, $motivoPerdidaGarantia);
												array_push($registro, $estadoEmbalaje);
												array_push($registro, $estadoEstetica);
												array_push($registro, $observaciones);
												array_push($registro, $codigoProducto);
												foreach($accesorios as $accesorio)
												{
													array_push($registro, $accesorio);	
												}
												
												$sintomasCliente = array();
												$sintomasInspector = array();
												$accesorios = array();
												
												array_push($data, $registro);
												
												$idModeloxInspeccion = $inspeccion['idModeloxInspeccion'];
												$usuario = $inspeccion['usuario'];
												$sucursal = $inspeccion['sucursal'];
												if($idInspeccion == $inspeccion['idInspeccion'])
												{
													$numeroProductoInspeccionado++;
												}
												else
												{
													$numeroProductoInspeccionado=1;
												}												
												$idInspeccion = $inspeccion['idInspeccion'];
												$cliente = $inspeccion['cliente'];
												$fechaInicio = $inspeccion['fechaInicio'];
												$fechaCierre = $inspeccion['fechaCierre'];
												$producto = $inspeccion['producto'];
												$marca = $inspeccion['marca'];
												$modelo = $inspeccion['modelo'];
												$imei = $inspeccion['imei'];
												$serie = $inspeccion['serie'];
												$fechaFabricacion = $inspeccion['fechaFabricacion'];
												$sintomaCliente = $inspeccion['sintomaCliente'];
												if(!in_array($sintomaCliente, $sintomasCliente))
												{
													array_push($sintomasCliente, $sintomaCliente);	
												}
												$sintomaInspector = $inspeccion['sintomaInspector'];
												if(!in_array($sintomaInspector, $sintomasInspector))
												{
													array_push($sintomasInspector, $sintomaInspector);	
												}
												$clasificacion = $inspeccion['clasificacion'];
												$mantieneGarantia = $inspeccion['mantieneGarantia'];
												if($mantieneGarantia == "1")
												{
													$garantia = "SI";
												}
												else
												{
													$garantia = "NO";
												}
												$motivoPerdidaGarantia = $inspeccion['motivoPerdidaGarantia'];
												$estadoEmbalaje = $inspeccion['estadoEmbalaje'];
												$estadoEstetica = $inspeccion['estadoEstetica'];
												$observaciones = $inspeccion['observaciones'];
												$codigoProducto = $inspeccion['codigoProducto'];
												$accesorio = $inspeccion['accesorio'];
												if(!in_array($accesorio, $accesorios) && $accesorio != '')
												{
													array_push($accesorios, $accesorio);	
												}
											}
											$i++;
										}
										$registro = array();
										array_push($registro, $usuario);
										array_push($registro, $sucursal);
										array_push($registro, $numeroProductoInspeccionado);
										array_push($registro, $idInspeccion);
										array_push($registro, $cliente);
										array_push($registro, $fechaInicio);
										array_push($registro, $fechaCierre);
										array_push($registro, $producto);
										array_push($registro, $marca);
										array_push($registro, $modelo);
										array_push($registro, $imei);
										array_push($registro, $serie);
										array_push($registro, $fechaFabricacion);
										for($j=0; $j<3; $j++)
										{
											array_push($registro, array_pop($sintomasCliente));	
										}
										for($j=0; $j<3; $j++)
										{
											array_push($registro, array_pop($sintomasInspector));	
										}
										array_push($registro, $clasificacion);
										array_push($registro, $garantia);
										array_push($registro, $motivoPerdidaGarantia);
										array_push($registro, $estadoEmbalaje);
										array_push($registro, $estadoEstetica);
										array_push($registro, $observaciones);
										array_push($registro, $codigoProducto);
										foreach($accesorios as $accesorio)
										{
											array_push($registro, $accesorio);	
										}
										
										$sintomasCliente = array();
										$sintomasInspector = array();
										$accesorios = array();
										
										array_push($data, $registro);
								
		                        		// include package
										include 'Spreadsheet/Excel/Writer.php';
										
										// Fecha Hora Inicio
										$fecha = getdate();
										$dia = $fecha[mday];
										$mes = $fecha[mon];
										$ano = $fecha[year];
										$hora = $fecha[hours];
										$minutos = $fecha[minutes];
										$segundos = $fecha[seconds];
										$archivo =  $ano . "-" . $mes . "-" . $dia . "-" . $hora . "-" . $minutos . "-" . $segundos . "Inspecciones.xls";
										
										// create empty file
										if($_SERVER['SERVER_NAME'] == "localhost")
										{
											$host = "/Users/fede/Sites/galander/informes/";
										}
										else
										{
											$host = "/var/www/html/galander/informes/";	
										}
										$excel = new Spreadsheet_Excel_Writer($host . $archivo);
										
										// add worksheet
										$sheet =& $excel->addWorksheet('Hoja 1');
										
										// create format for header row 
										// bold, red with black lower border
										/*$firstRow =& $excel->addFormat();
										$firstRow->setBold();
										$firstRow->setColor('black');
										$firstRow->setBottom(1);*/
										//$firstRow->setBottomColor('black');
										
										// create format for header column
										// blue with black right border
										/*$firstCol =& $excel->addFormat();
										$firstRow->setBold();
										$firstCol->setColor('black');*/
										//$firstCol->setRight(1);
										//$firstCol->setRightColor('black');
										
										// create format for top left corner
										/*$firstRowCol =& $excel->addFormat();
										$firstRowCol->setBottom(1);*/
										//$firstRowCol->setRight(1);
										//$firstRowCol->setBorderColor('black');
										
										// create format for numeric cells
										$num =& $excel->addFormat();
										$num->setNumFormat('#');
										
										$imeiF =& $excel->addFormat();
										$imeiF->setNumFormat('000000000000000');
										
										$prodcode =& $excel->addFormat();
										$prodcode->setNumFormat('0000000');
										
										$fecIng =& $excel->addFormat();
										$fecIng->setNumFormat('00000000');
										
										// create format for averaged values
										/*$avg =& $excel->addFormat();
										$avg->setNumFormat('0.00');*/
										
										// add data to worksheet
										$rowCount=0;
										foreach ($data as $row) {
										  for($colCount=0; $colCount<sizeof($row); $colCount++) {
										    /*if ($rowCount == 0 && $colCount == 0) {
										      $format = 'firstRowCol';
										    } else if ($rowCount == 0) {
										        $format = 'firstRow';        
										    } else if ($colCount == 0) {
										        $format = 'firstCol';                
										    } else {
										        $format = 'num';                      
										    }*/
										    if($colCount == 11)
										    	$format = 'imeiF';
										    else if($colCount == 15)
										    	$format = 'prodcode';
									    	else if($colCount == 16)
										    	$format = 'fecIng';
									    	else if($colCount == 17)
										    	$format = 'fecIng';
									    	else if($colCount == 18)
										    	$format = 'fecIng';
										    else if($colCount == 19)
											    $format = 'fecIng';
											else if($colCount == 20)
											    $format = 'fecIng';
										    else
										    	$format = 'num';
										    $sheet->writeString($rowCount, $colCount, $row[$colCount]);                       
										  }  
										  // get cell coordinates
										  $start = Spreadsheet_Excel_Writer::rowcolToCell($rowCount, 1);
										  $end = Spreadsheet_Excel_Writer::rowcolToCell($rowCount, (sizeof($row)-1));
										  // add average() formula to terminating cell of each row
										  // except the first (header) row
										  /*if ($rowCount != 0) {
										    $sheet->writeFormula($rowCount, sizeof($row), "=AVERAGE($start:$end)", $avg);     
										  } */
										  $rowCount++;
										}
										
										// save file to disk
										if ($excel->close() === true) 
										{
											echo "<a class='linknuevo' href='informes/" . $archivo . "'>Descargar Archivo</a>";
											
										  //echo 'Spreadsheet successfully saved!';  
										} else {
										  echo 'ERROR: Could not save spreadsheet.';
										}
										
										/*foreach($data as $val)
										{
											foreach($val as $val1)
											{
												echo $val1 . "<br>";
											}
										}*/
											break;
										}
                        			}
                        		?>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
	</body>
</html>